package com.yingxin.yx.framework.commons.activiti.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.util.Date;

/**
 * 执行中的任务列表
 */

@Data
public class UserTaskDto {

    /**
     * 任务id
     */
    private String taskId;

    /**
     * 执行实例id
     */
    private String executionId;

    /**
     * 任务名称
     */
    private String taskName;

    /**
     * formKey
     */
    private String formKey;

    /**
     * 官方：签收人或委托人
     */
    private String assigneeId;

    /**
     * 官方：流程实例ID
     * （act_ru_execution表PROC_INST_ID_） 因为一个流程拆分成一个主实例和多个分支实例（如果存在多分支）
     */
    private String processInstanceId;

    /**
     * 官方：流程定义ID
     */
    private String processDefinitionId;

    /**
     * 官方：任务定义的ID
     */
    private String taskDefKey;

    /**
     * 任务开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    private Date startTime;

    /**
     * 任务结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    private Date endTime;

    /**
     * 删除原因
     */
    private String deleteReason;

    /**
     * 官方：关联业务系统的业务key
     */
    private String businessKey;

    /**
     * 官方：创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    private Date createTime;

    /**
     * 业务id
     */
    private String bizId;

    /**
     * 业务类型
     */
    private String bizType;

    /**
     * 业务单号
     */
    private String bizNo;

    /**
     * 审核状态
     */
    private String processApprovalStatus;

    /**
     * 申请人 id
     */
    private String applicantId;

    /**
     * 第一个审核人信息
     */
    private String firstAssigneeInfo;

    /**
     * 当前审核人信息
     */
    private String currentAssigneeInfo;

    /**
     * 最后审核人信息
     */
    private String lastAssigneeInfo;

    /**
     * 业务单据创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    private Date bizCreateTime;

}
